import Big from 'big.js'
/**
 * 校验是否为数字
 * @param val 需要校验的值
 * @returns 校验结果
 */
export const isNumeric = (val: any | number | string) => !isNaN(parseFloat(val)) && isFinite(val)

/**
 * 格式化金额
 * @param num 需要格式化的金额
 * @returns 格式化后的金额
 */
export const formatMoney = (num: any | number | string): '' | `¥${number}` => {
    if (!isNumeric(num)) return ''
    return Number(num).toLocaleString('zh', {
        style: 'currency',
        currency: 'CNY'
    }) as `¥${number}`
}

/**
 * 格式化数字
 * @param num 需要格式化的数字
 * @returns 格式化后的数字
 */
export const formatNumber = (num: any | number | string) => {
    if (!isNumeric(num)) return ''
    return Number(num).toLocaleString('zh', {
        style: 'decimal'
    })
}

/**
 * 获取数字的整数部分
 * @param num 需要获取整数部分的数字
 * @returns 整数部分
 */
export const getInteger = (num: any | number | string) => {
    if (!isNumeric(num)) return ''
    return Big(num).round(0, 0).toString()
}
